home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Moscow ML 1.42 / doc / releases.txt < prev   
Encoding:
Text File  |  1997-08-18  |  8.1 KB  |  168 lines  |  [TEXT/R*ch]

  1. Moscow ML release history
  2.  
  3. 1.00 (1 September 1994) 
  4.   * First public release, supposed to be reliable.
  5.  
  6. 1.01 (2 September 1994) 
  7.   * Fixed the bewildering error message from test R021B-FL.
  8.  
  9. 1.02 (6 September 1994)
  10.   * Removed `Internal error: domPatAcc' from the function of that name in 
  11.     asynt.ml, which was reported upon elaborating 
  12.     val ref (x as (y, z)) = ref (1, 2)
  13.   * Made the compiler reject unbalanced comments: (op *) (2,3);
  14.     and record labels starting with 0: {02 = true};
  15.  
  16. 1.03 (12 September 1994)
  17.   * In the implementation of `use', open_in replaced with
  18.     open_in_bin, to avoid wrong calculation of file positions
  19.     when reporting errors.
  20.  
  21. 1.10 (28 September 1994)
  22.   * Exceptions in integer and real arithmetic operations are raised
  23.     correctly. (Including floor.)  The real arithmetic exceptions work
  24.     under DOS, Windows, Linux, Ultrix, OSF/1, HP/UX, Sun OS.
  25.   * The representation of top-level exceptions has been changed
  26.     to enable SML programs to handle the exceptions raised by
  27.     the Caml Light run-time system.
  28.     As a consequence, the exception Interrupt can now be
  29.     handled by SML programs. (The Caml Light name of that
  30.     exception is sys__Break.)
  31.     Evaluating expressions like  10 div 0  no longer causes
  32.     Moscow ML to crash.
  33.   * datatype X = A | B of unit; B (); now accepted.
  34.   * Now ~100 div 10 = ~10. (Previously it was ~11!).
  35.   * Too large integer or real constants now give rise to error reports.
  36.   * Error reports produced by the type-checker for the
  37.     expressions like 0 = [1,2,3] have been made more
  38.     understandable.
  39.   * Unbound variables are identified before type-checking.  (To
  40.     avoid strange error reports in expressions like 2*~2.)
  41.   * As required by the Definition, inexhaustive patterns in 
  42.     valbinds at the top level are no longer reported. (For 
  43.     example, in val nil = [].)
  44.  
  45. 1.20 (1 December 1994)
  46.   * Supports separate compilation and type-safe linking, using a simple 
  47.     module system which has Standard ML's signatures and structures, but 
  48.     no functors.  Includes extensible basis libraries Array, List, and
  49.     Vector (and Graphics in the MS DOS version).  Cannot create
  50.     stand-alone executables yet.
  51.   * Fixed the two bugs found in version 1.10:
  52.     * Illegal string escapes, such as "\256", caused the system to crash.
  53.     * Certain illegal infix patterns, as in fn + => (), were accepted.
  54.  
  55. 1.30 (15 June 1995)
  56.  
  57.   * Now reports `hidden' types t in a less ambiguous manner: ?{t}
  58.   * New type char, and character constants #"a".
  59.   * Supports vector expressions #[7, 9, 13] and vector patterns #[x,y,z].
  60.   * Permits quotations `a b c` and antiquotations `a ^var c`.
  61.   * Provides a batch compiler which can generate stand-alone executables.
  62.   * Provides a lexer generator and a parser generator (from Caml Light).
  63.   * New runtime system with better garbage collector (from Caml Light 0.7).
  64.   * Moscow ML has been rewritten in Moscow ML and can recompile itself,
  65.     which simplifies installation on Unix systems.
  66.   * Supports a large part of the new SML Standard Library, but not yet 
  67.     the new I/O primitives.
  68.   * Fixed bugs found in version 1.20:
  69.     * The Match exception wasn't handled properly
  70.     * Static argumentless exception constructors in data structures at 
  71.       top-level caused evaluation to crash.
  72.     * Now considers ctrl-Z to mean end of file when reading source programs
  73.       with `use' and `compile', under DOS as well as Unix.  This simplifies 
  74.       moving source files from DOS to Unix, and prevents ctrl-Z characters
  75.       in source files from crashing the top-level under DOS.
  76.  
  77. 1.31 (15 October 1995)
  78.  
  79.   * Added prettyprinter library PP (from SML/NJ library version 0.2)
  80.   * Added installable prettyprinters
  81.   * Now works for the Macinstosh, thanks to Doug Currie (e@flavors.com)
  82.   * The timer functions now report garbage-collection time
  83.   * Avoid excess flushing: output to std_out no longer flushes immediately; 
  84.     function BasicIO.say still does.
  85.   * Make sure that std_out is flushed when (stand-alone) program terminates.
  86.   * Standard Library: Added getOpt etc. at top-level; changed the types
  87.     of the word shift operations; ...
  88.   * Now accepts ctrl-L in source files.
  89.   * Bugs fixed:
  90.     * input_line now works properly with pipes, DOS, and Mac
  91.     * Array2 (and mosmllib/Makefile) were wrong
  92.     * missing -q/-quotation option in mosmlc (under Unix)
  93.     * Added test cases for Array2, Arraysort, and Listsort
  94.     * FileSys.chDir now changes volume under DOS
  95.     * mosmlyac now requires the types of non-terminals to be declared
  96.       for type safety
  97.  
  98. 1.40 (1 July 1996)
  99.  
  100.   * Changes in compiler (many of which to reflect the 1996 revised SML):
  101.     * New match compiler properly detects inexhaustive matches etc.
  102.     * Better type error messages
  103.     * Made value polymorphism default; introduced command-line options 
  104.       -valuepoly and -imptypes, and added a ref variable Meta.valuepoly
  105.     * Added hexadecimal integer constants, word type, word special
  106.       constants, and word printing
  107.     * Made +, *, -, <, >, <=, >=, div, mod, and makestring overloaded 
  108.       on word and word8 also
  109.     * Overloading defaults to type int by default
  110.     * Made quot and rem nonfix
  111.     * Permitted 'e' as well as 'E' in real constants
  112.     * Added trunc, ceil, round at top-level
  113.     * Removed sqrt, ln, exp, sin, cos, arctan, quot, rem from top-level
  114.     * Permitted new escape sequences in char and string constants
  115.     * Forbade rebinding and respecification (as constructors) of the 
  116.       identifiers true, false, it, nil, ::, ref 
  117.     * Made the -P unitset option case insensitive
  118.     * Permit keywords `structure' and `signature' etc. in compilation units
  119.   * Changes concerning SML Basis Library:  
  120.     * New structures TextIO and BinIO
  121.     * Renamed Integer to Int, String.maxLen to String.maxSize
  122.     * Added String.isPrefix, Substring.isPrefix, FileSys.fileSize,
  123.       Char.{fromCString, toCString}, StringCvt.scanList, hyperbolic
  124.       functions in Math, exnName, exnMessage, FileSys.file_id etc.,
  125.       FileSys.{fullPath, realPath}, exception Domain
  126.     * Changed {Int, Word, Word8}.{scan, fromString} to accept various
  127.       combinations of prefixes: 0x, 0X, and 0w, 0wx, 0wX; and {Char,
  128.       String}.fromString to permit new escape sequences;
  129.       FileSys.tmpName; built-in exception Io; General.ordering to 
  130.       General.order
  131.     * Fixed Real.fmt, Real.toString, Real.fromString on "1.E"
  132.   * Bugs fixed:
  133.     * mosmllex handled character set concatenation wrongly
  134.     * Exceptions SysErr and Io didn't print properly
  135.     * Missing check for duplicate labels in record types in signatures
  136.  
  137. 1.41 (1 October 1996)
  138.   * Better type error message for tuples.
  139.   * New option `-P parsing' for linking mosmlyac- and mosmllex-generated
  140.     programs.
  141.   * Bugs fixed:
  142.     * Overloaded type variables were incorrectly generalized at top-level.
  143.     * mosmlyac now permits immediate tuple and record types in
  144.       %tokens; permits function types; and correctly binds $s in semantic 
  145.       actions even inside closures.
  146.  
  147. 1.42 (July 1997) 
  148.   * The linker now automatically includes all (and only) referred-to
  149.     bytecode files.  Option -i makes the linker report which files.
  150.     Option -noautolink disables the autolinker.  Option -P parsing
  151.     has been removed.  
  152.   * Now doesn't print imperative tyvars for library functions.
  153.   * Now accepts explicit type variable parameters in val and fun.
  154.   * Basis Library: Added structures Array2, CommandLine, and Option.  
  155.     Added Substring.span and {Vector, CharVector, Word8Vector}.{map, mapi}.
  156.     Renamed Old to SML90.  Fixed FileSys.closeDir, Path.joinBaseExt, 
  157.     Word8.~>>.  FileSys.tmpName now creates absolute pathnames, using
  158.     POSIX tmpnam.
  159.   * Support for writing CGI scripts (Mosmlcgi, thanks to Jonas Barklund).
  160.   * Signature stamps now are standard MD5 checksums rather than CRC128
  161.   * Several internal improvements to the compiler; faster compilation
  162.   * Faster and more compact bytecode, thanks to Doug Currie
  163.   * Bugs fixed: 
  164.     * compilation of certain patterns with irrefutable subpatterns failed
  165.     * mosmllex-generated lexers now typesafe
  166.     * Polyhash.hash now is more useful on ref values
  167.     * signature stamps now unaffected by gc phenomena; hence stable
  168.